package com.cskaoyan.checkable;

import java.text.ParseException;

/*

方法覆盖时的 子类异常列表 必须与父类 兼容
     a. 当子类方法声明的异常类型和父类声明的异常类型，完全相同的时候，可以发生方法覆盖
     b. 子类中声明的异常类型, 都是父类中声明异常列表中的异常的子类类型（只针对编译时异常）
     c. 如果说父类没有异常列表，对于 编译时异常 而言，子类也不能有异常列表（子类也没有才能发生方法覆盖）
     d. 如果说父类有异常列表，子类没有异常列表，可以发生方法覆盖

     对于运行时异常而言，只包含运行时异常的异常列表不会影响方法覆盖的条件，
     只有包含了编译时异常的异常列表才会影响方法覆盖的条件


 */
public class Demo3 {
}

class CompareFather {

    /*
         针对运行时异常
     */
    public void runtime() throws ArithmeticException, NullPointerException{

    }
    /*
         针对编译时异常
     */
    public void  checkable() throws Exception {

    }


}

class CompareSon extends CompareFather {

    /*
     针对运行时异常
    */
    @Override
    public void runtime() throws ArrayIndexOutOfBoundsException  {

    }

    /*
         针对编译时异常
     */
    @Override
    public void  checkable() throws ParseException {

    }


}
